package com.ruoyi.system.service;
 
import com.ruoyi.common.core.domain.entity.AppUser;

import java.util.List;

/**
 * 用户 业务层
 *
 * @author ruoyi
 */
public interface IAppUserService {
    /**
     * 通过用户账号查询用户
     *
     * @param userName 用户账号
     * @return 用户对象信息
     */
    AppUser selectAppUserByUserName(String userName);

    /**
     * 查询用户信息
     *
     * @param userId 用户信息主键
     * @return 用户信息
     */
    public AppUser selectAppUserByUserId(Long userId);

    /**
     * 查询用户信息列表
     *
     * @param appUser 用户信息
     * @return 用户信息集合
     */
    public List<AppUser> selectAppUserList(AppUser appUser);

    /**
     * 新增用户信息
     *
     * @param appUser 用户信息
     * @return 结果
     */
    public int insertAppUser(AppUser appUser);

    /**
     * 修改用户信息
     *
     * @param appUser 用户信息
     * @return 结果
     */
    public int updateAppUser(AppUser appUser);

    /**
     * 批量删除用户信息
     *
     * @param userIds 需要删除的用户信息主键集合
     * @return 结果
     */
    public int deleteAppUserByUserIds(Long[] userIds);

    /**
     * 删除用户信息信息
     *
     * @param userId 用户信息主键
     * @return 结果
     */
    public int deleteAppUserByUserId(Long userId);
 
    /**
     * 密码校验
     *
     * @param password 明文
     * @param hashPwd  密文
     * @return boolean
     */
    boolean checkPassword(String password, String hashPwd);

    boolean checkPhoneUnique(AppUser user);

    boolean checkEmailUnique(AppUser user);
}